package LeetCode;

/*给定一个二叉树 root ，返回其最大深度。

        二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。*/

public class Code104_maxDepth {

    /**
     * 计算二叉树的最大深度
     * 最大深度是指从根节点到最远叶子节点的最长路径上的节点数
     *
     * @param root 二叉树的根节点
     * @return 返回二叉树的最大深度
     */
    public int maxDepth(TreeNode root) {
        // 如果节点为空，则返回深度为0
        if (root == null){
            return 0;
        }
        // 递归计算左子树的最大深度
        int left_depth = maxDepth(root.left);
        // 递归计算右子树的最大深度
        int right_depth = maxDepth(root.right);
        // 返回左右子树中的最大深度，并加上根节点的深度1
        return Math.max(left_depth, right_depth) + 1;
    }

}
